package com.ruoyi.asset.roadgreening.service;

import com.ruoyi.asset.cleaning.domain.bo.CleaningCommunityCountBo;
import com.ruoyi.asset.cleaning.domain.bo.CleaningCommunityMapBo;
import com.ruoyi.asset.cleaning.domain.bo.CleaningWorkStatisticsBo;
import com.ruoyi.asset.roadgreening.domain.bo.MaintenanceScopeSearchBo;
import com.ruoyi.asset.roadgreening.domain.bo.RoadGreeningOverviewBo;
import com.ruoyi.asset.roadgreening.domain.bo.StatisticianGreeneryByRegion;
import com.ruoyi.asset.roadgreening.domain.vo.GreeneryCommunityCountVo;
import com.ruoyi.asset.roadgreening.domain.vo.GreeneryCommunityMapVo;
import com.ruoyi.asset.roadgreening.domain.vo.GreeneryWorkStatisticsVo;
import com.ruoyi.asset.roadgreening.domain.vo.RoadGreeningVo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 道路绿化管养任务完成进度Service接口
 *
 * @author cc
 * @date 2023-08-29
 */
public interface IRoadGreeningService {

	/**
	 * 数据导入
	 *
	 * @return 返回导入失败数据的行号和错误信息
	 */
	List<String> importExcel(String excelUrl);

	/**
	 * 删除管养范围
	 */
	int deleteMaintenanceScope(Set<Long> idsSet);

	/**
	 * 查询管养范围
	 */
	TableDataInfo<RoadGreeningVo> queryMaintenanceScope(MaintenanceScopeSearchBo searchBo, PageQuery pageQuery);

	/**
	 * 导出管养范围
	 */
	List<RoadGreeningVo> queryMaintenanceScope(MaintenanceScopeSearchBo maintenanceScopeSearchBo);

	/**
	 * 查询道路绿化概况
	 */
	RoadGreeningOverviewBo getRoadGreeningOverview();

	/**
	 * 统计绿地
	 */
	List<StatisticianGreeneryByRegion> statForGreeneryByRegion();

    Map getRoadGreeningCommunityCount();

    /**
     * 智慧大屏道路绿化左侧
     * @param date 指定日期
     * @return
     */
    List<GreeneryCommunityCountVo> getCleaningCountByCommunity(String date);

    /**
     * 今日统计
     * @param date 指定日期
     * @return
     */
    GreeneryWorkStatisticsVo getGreeneryWorkByDate(String date);

    /**
     * 今日统计
     * @param date 指定日期
     * @param community 指定日期
     * @return
     */
    GreeneryWorkStatisticsVo getGreeneryWorkByDateAndCommunity(String date,String community);

    GreeneryCommunityMapVo getCommunityByDate(String community, String date);

    GreeneryCommunityCountVo getGreeneryByDateAndCommunity(String date,String community);
}
